Skip to content

R3 F-α post-merge parallelism cementing-receipt (gate #87 corpus extension): brief at docs/briefs/r3-f-alpha-post-merge-parallelism-cementing-receipt-worker.md; DISPATCH BLOCKER cleared (PR #3029 sunny-pike-316 merged); per cementing-discipline-pattern §1 — regen.dag + r3_gate_87 runner-suites + t_r - #3063

Merged
briansrls merged 9 commits into
mainfrom
session/neat-gull-563
May 14, 2026

Conversation

@briansrls

@briansrls briansrls commented May 14, 2026 •

Copy link
Copy Markdown
Contributor

Auto-opened by session-dashboard for session neat-gull-563.
Pushing to session/neat-gull-563 advances this PR.

Worker attestation

Before flipping this PR to ready for review, confirm each item:

  • Title describes the change (not the session id or branch).
  • PR body summarises what and why (below).
  • Tests run: CTRL_BUILD_BYPASS_SHIMS=1 cargo test -p v3-compiler r3_gate_87 --no-fail-fast — pass locally; CI ci / fmt / v3 on the branch.
  • If this closes a work item, the body contains a Closes #N directive.
  • No commits on this branch are surprises (no fork/cherry-pick I did not make).
  • No secrets / credentials / large binaries staged.

Summary

regen.dag already listed parallelism after the post-merge substrate work; gate #87
(lens_cementing_test_discipline_complete) requires every LensRegistryEntry to carry a matching
PB-B-1 / cementing-regen harness. This PR adds tests/dag/t_r3_gate_87_cementing_regen_parallelism.dag,
registers it in src/v3/compiler/src/r3_gate_87_cementing_regen_runner_suites.rs, extends
test_runner::eval_gate_87_cementing_projection with gate87_parallelism_literal_no_workflow_projection
(NoWorkflowProjection on an unstaged lit bind), and pairs a Rust receipt in
r3_gate_87_lens_cementing_regen_receipts_test.rs. Post-#3059, the superseded PB-0
cementing_dispatch.rs.in template stays deleted on main; the harness lives only in the
dedicated runner-suites module.

INVARIANTS §P5(b) — exactly one checkable receipt (Dispatch-Discipline Mechanism (b))

This PR expands hand-Rust under src/v3/compiler/src/test_runner.rs and
src/v3/compiler/tests/integration/r3_gate_87_lens_cementing_regen_receipts_test.rs. Per
INVARIANTS.md §P5(b), one checkable receipt is stated here:

  1. Planning artifact (concrete row, not a vague ROADMAP pointer): docs/r3-program-plan.md
    §1.8 row RT1-RT4: model correctness — credential wiring, fail-closed auth, fil… #87 — lens_cementing_test_discipline_complete (T-Tests-As-Data-Completeness).
    Acceptance for that gate is the regen.dag enumeration ↔ gate-RT1-RT4: model correctness — credential wiring, fail-closed auth, fil… #87 harness inventory ↔ runner
    wiring described in docs/r3-structure.md; this PR closes the remaining parallelism gap
    in that inventory (no new EXPECTED_HAND_AUTHORED_* paths — both Rust files were already
    census-listed before this change).

  2. Binary checkable closure (same PR): cargo test -p v3-compiler r3_gate_87 --no-fail-fast
    (CI: v3 / integration slice) must pass — in particular
    r3_gate_87_regen_lens_registry_names_match_fixture_inventory and
    r3_gate_87_cementing_regen_lens_suites_pass_through_runner, which fail closed if
    regen.dag names ever drift from R3_GATE_87_CEMENTING_REGEN_SUITES or the new .dag harness
    is not executable through the PB-B-1 runner table.

  3. Deleted scaffold path (Pure Bootstrap / PB-0 alignment, same branch stack):
    tools/pb0_cycle4_emit_templates/cementing_dispatch.rs.in — removed because main deleted it
    under the revert(pb0): restore census + stage0 hand list; undo #3057 #3048 #3046 template relocations #3059 revert; gate-RT1-RT4: model correctness — credential wiring, fail-closed auth, fil… #87 suite rows now live only in
    src/v3/compiler/src/r3_gate_87_cementing_regen_runner_suites.rs (no parallel template roster).

Dissolution (narrow seam, named in harness header): widen the .dag claim to full
WorkflowParallelismReport LensOutputEquals once those literals are authorable as .dag data
(T-PB-B carrier lane); full behavioral completion for the lens remains program-plan row #81
parallelism_lens_behaviorally_complete (Cluster F), out of scope for this gate-#87 inventory PR.

Test plan

Brief note (title vs tree)

The dashboard title references docs/briefs/r3-f-alpha-post-merge-parallelism-cementing-receipt-worker.md;
that path is not in-repo. Dispatch context + this PR body + the .dag harness header carry the
gate-#87 / P5 narrative until a brief file is filed under docs/briefs/.

@briansrls
briansrls marked this pull request as ready for review May 14, 2026 05:23
@briansrls

Copy link
Copy Markdown
Contributor Author

Verified current HEAD against the composer-2 review (2026-05-14T05:26:34Z): the review is an APPROVE with no findings, so there is nothing to fix in code from that artifact.

Cross-check:

  • t_r3_gate_87_cementing_regen_parallelism.dag documents a narrow Int LensOutputEquals seam and an explicit dissolution trigger (full WorkflowParallelismReport in data when authorable).
  • test_runner::eval_gate_87_cementing_projection dispatches gate87_parallelism_literal_no_workflow_projection by calling analyze_parallelism on the claim program’s lit bind — same API the Rust receipt uses, not a parallel derivation.
  • cementing_dispatch.rs and tools/pb0_cycle4_emit_templates/cementing_dispatch.rs.in both include the new harness row in R3_GATE_87_CEMENTING_REGEN_SUITES.

No commit pushed in response to this review; reply only.

@briansrls

Copy link
Copy Markdown
Contributor Author

Item 1 (2026-05-14T05:27:12Z comment): That GitHub note is not new third-party review feedback — it is this session’s prior reply documenting verification of the composer-2 dashboard artifact (APPROVE, no findings). There was and is no valid code defect in that thread; no commit is required for it.

Re-verified on current HEAD: the parallelism gate-#87 harness, eval_gate_87_cementing_projection branch, R3_GATE_87_CEMENTING_REGEN_SUITES row (+ template .in), and the Rust receipt still align as described in that comment.

Merge readiness (dashboard-ops reviews + gh pr checks): Not ready to squash-merge. Reasons: (1) dashboard approvals 1/2 — only cursor (composer-2) posted; openai-pro review still running on the same SHA. (2) CI — v3 check still pending (gh pr checks exit 8). No REQUEST_CHANGES. GitHub mergeable is clean once branch protection inputs clear.

Will merge with gh pr merge 3063 --squash --delete-branch only after the second approval lands, v3 goes green, and dashboard-ops reports merge_criteria.ready: true.

— sent from neat-gull-563

@briansrls

Copy link
Copy Markdown
Contributor Author

Review metadata

  • Provider / model: openai-pro / gpt-5-5-pro
  • Commit: 55c6416d · Trigger: manual
  • Comparison: main @ 4b243492 ... session/neat-gull-563 @ 55c6416d
  • Conversation: View conversation

1. Story of the diff

This PR adds the missing gate #87 cementing receipt for the parallelism LensRegistryEntry after the post-merge runner-suite path was unblocked. The mechanism is deliberately narrow: a new .dag TestClaim compiles a trivial let lit: Int = 7 program and expects the runner-side LensOutputEquals projection to classify it as NoWorkflowProjection, which is the current behavior when the program has no Lane-2 workflow projection (src/v3/compiler/tests/dag/t_r3_gate_87_cementing_regen_parallelism.dag:1-5, :18-28). The test runner adds the projection hook by finding the lit bind, calling analyze_parallelism, and mapping the exact WorkflowParallelismReport::ParallelismUnsupported(NoWorkflowProjection) shape to 1/0 (src/v3/compiler/src/test_runner.rs:3156-3168). The new harness is registered in the shared gate-#87 runner-suite inventory and its emitted template mirror (src/v3/compiler/src/cementing_dispatch.rs:501-506, tools/pb0_cycle4_emit_templates/cementing_dispatch.rs.in:495-500), while the existing Rust receipt file adds a full-carrier pin for the same behavior until WorkflowParallelismReport literals can be authored directly as .dag data (src/v3/compiler/tests/integration/r3_gate_87_lens_cementing_regen_receipts_test.rs:165-186).

2. Invariant categories

1. LAYER MODEL (substrate vs implementation).

N/A — implementation/test receipt only. The diff does not add or mutate substrate types, Dag fields, or new sum variants; it consumes the existing WorkflowParallelismReport and ParallelismUnsupportedKind carriers in the runner/test seam (src/v3/compiler/src/test_runner.rs:3162-3167).

2. INVARIANTS.md + modeling-discipline.md.

Compliant — fail-closed and single-authority. The new runner projection fails as a ClaimResult::Fail when the expected lit bind is absent instead of fabricating a success value (src/v3/compiler/src/test_runner.rs:3157-3160), matching the fail-closed discipline in the modeling rules. It also uses the existing analyze_parallelism carrier directly rather than re-deriving a parallel interpretation (src/v3/compiler/src/test_runner.rs:3162-3167). The only new scaffold is explicitly bounded: the .dag harness says it is a narrow Int projection and names the dissolution trigger as widening to full WorkflowParallelismReport equality once report literals are authorable as .dag data (src/v3/compiler/tests/dag/t_r3_gate_87_cementing_regen_parallelism.dag:1-5). This matches the project’s P5 rule that scaffolds need named dissolution triggers and that gate-#87 runner-suite tables are an interim single shared inventory. chatgpt-review-4f10a744-a281-42…

3. CODING.md.

Compliant — data + free functions over methods. The new Rust code calls the existing free analysis function with explicit inputs, analyze_parallelism(program_dag, bind.id), instead of hanging behavior off Dag or using hidden state (src/v3/compiler/src/test_runner.rs:3162, src/v3/compiler/tests/integration/r3_gate_87_lens_cementing_regen_receipts_test.rs:177). The added .expect(...) calls are confined to test code (src/v3/compiler/tests/integration/r3_gate_87_lens_cementing_regen_receipts_test.rs:167-168), which is consistent with the coding guidance that panics are not library error paths.

4. TESTING.md.

Compliant — same-PR cementing receipt, correct level. The PR adds a focused .dag TestClaim/TestSuite under tests/dag/ for the new gate-#87 lens stem (src/v3/compiler/tests/dag/t_r3_gate_87_cementing_regen_parallelism.dag:18-33) and registers that suite in the shared PB-B-1 execution inventory (src/v3/compiler/src/cementing_dispatch.rs:501-506). The narrower .dag predicate is paired with a Rust carrier pin in the existing receipt test file (src/v3/compiler/tests/integration/r3_gate_87_lens_cementing_regen_receipts_test.rs:165-186), and the harness itself names the blocker/dissolution path (src/v3/compiler/tests/dag/t_r3_gate_87_cementing_regen_parallelism.dag:4-5). That aligns with the cementing discipline for v3-native/partial rows: prefer a .dag harness, and pair a Rust pin only when the .dag predicate cannot yet express the full published carrier. chatgpt-review-33037508-9d3c-44…

5. LOCKED DESIGN DECISIONS.

N/A — no locked design surface altered. The diff does not modify the thesis, substrate shape, Pure Bootstrap design, or a locked design document. It is consistent with the locked testing trajectory because the primary new receipt is a .dag TestClaim, while the Rust addition is a bounded interim pin rather than a permanent replacement for test-as-data. chatgpt-review-bef08757-cf37-47…

6. TRACKED vs UNTRACKED DEBT.

Compliant — tracked bridge. The narrow projection is documented, bounded, and has a named dissolution trigger in the new harness (src/v3/compiler/tests/dag/t_r3_gate_87_cementing_regen_parallelism.dag:1-5). The runner-suite table expansion stays within the existing tracked gate-#87 bridge: one shared inventory is extended (src/v3/compiler/src/cementing_dispatch.rs:501-506) and the template mirror is updated with the same tuple (tools/pb0_cycle4_emit_templates/cementing_dispatch.rs.in:495-500), rather than introducing a second independent roster.

2.5. Top-down PM intent review

Compliant. The highest-level intent here is not “prove all workflow parallelism now”; it is to keep gate #87 cementing receipts honest and executable while moving toward .dag-authored tests. The diff preserves that intent: the new .dag receipt is the merge-visible contract (src/v3/compiler/tests/dag/t_r3_gate_87_cementing_regen_parallelism.dag:18-33), the runner inventory executes it (src/v3/compiler/src/cementing_dispatch.rs:501-506), and the Rust test only pins the full current carrier shape that the .dag predicate cannot yet express (src/v3/compiler/tests/integration/r3_gate_87_lens_cementing_regen_receipts_test.rs:177-185). It does not dilute parallelism into optional prose or permanent scaffolding; it cements the current NoWorkflowProjection boundary and states the path to dissolve the host-side projection once full report literals are authorable.

3. Verdict

APPROVE. The PR is a narrow, well-tracked cementing-receipt extension: it adds the .dag harness, wires it into the shared gate-#87 runner inventory and template, and pairs it with a bounded Rust carrier pin. I did not find a diff-cited invariant violation.

@briansrls

Copy link
Copy Markdown
Contributor Author

Item 1 (openai-pro / gpt-5.5-pro @ 05:33:27Z): Treated as a formal APPROVE with no actionable change requests (Section 3 verdict). I spot-checked the cited surfaces on 55c6416d and they match the narrative: narrow Int seam + dissolution note in t_r3_gate_87_cementing_regen_parallelism.dag, find_bind + analyze_parallelism + NoWorkflowProjection mapping in test_runner.rs, inventory + .in mirror in cementing_dispatch, and the Rust pin in r3_gate_87_lens_cementing_regen_receipts_test.rs. No fix commit — nothing in the review contradicts current code or asks for edits.

Merge readiness: Per gh pr checks, CI is green on this run (ci, fmt, v3, self_host_ratchet all pass). Per dashboard-ops reviews, merge_criteria.ready is still false: the gate “2 distinct dashboard approvals” stays 1/2 because review 11683 (openai-pro) is posted but the dashboard parser records verdict: "unknown" from the stdout artifact even though the GitHub-posted body ends in ### 3. Verdict → **APPROVE.**. Per your standing instruction, I do not squash-merge while the dashboard summary does not show two counted approvals, even though the human-readable review is an approve.

Action for operators / infra: reconcile dashboard verdict extraction for chatgpt-reviewer stdout on 11683 (or post a dashboard-visible approve artifact) so meets_two_approval_rule can flip true; then re-run dashboard-ops reviews and merge if still clean.

— sent from neat-gull-563

@briansrls briansrls left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review metadata

  • Provider / model: codex / unknown
  • Commit: 55c6416d · Trigger: schedule
  • Thinking: 146s wall

✅ The mixed code/.dag receipt extension fits the existing gate-87 cementing pattern, carries the parallelism unsupported case through the runner without adding substrate shape, and I found no blocking concerns.

@briansrls

Copy link
Copy Markdown
Contributor Author

Item 1 (codex @ 05:49:53Z): Verified against 55c6416d — the diff is still the gate-#87 parallelism cementing slice only: .dag harness + runner eval_gate_87_cementing_projection hook + R3_GATE_87_CEMENTING_REGEN_SUITES (+ template mirror) + Rust pin. No new substrate shape; fail-closed bind lookup unchanged. No fix commit — “no blocking concerns” matches the tree.

Merge readiness (dashboard-ops reviews + gh pr checks): Still not merging. gh pr checks is all pass (exit 0). dashboard-ops reviews still reports merge_criteria.ready: false: 2 distinct dashboard approvals → 1/2: cursor only. Review 11683 (openai-pro) remains verdict: "unknown" in the dashboard rollup despite the GitHub-posted APPROVE prose, and this codex GitHub comment is not yet a third row in the reviews array I see from dashboard-ops (only 11684 + 11683). Until the dashboard shows two counted APPROVE providers (or infra fixes 11683 verdict parsing / ingests codex as a second provider), I will not gh pr merge per the dashboard-as-source-of-truth rule.

— sent from neat-gull-563

@briansrls

Copy link
Copy Markdown
Contributor Author

Item 1 (claude / claude-opus-4-7 @ 06:10:39Z): Spot-checked current HEAD against the review text — APPROVE is accurate. The harness names the dissolution path (full WorkflowParallelismReport LensOutputEquals when literals are authorable) in t_r3_gate_87_cementing_regen_parallelism.dag lines 1–5; cementing_dispatch.rs includes the new suite tuple (lines ~501–505); the template mirror still carries the same row; test_runner exposes the gate87_parallelism_literal_no_workflow_projection seam; the Rust receipt stays paired. No fix commit — nothing in the review asks for code edits.

Merge readiness: dashboard-ops reviews now shows 2 counted approvals (claude + cursor) and no REQUEST_CHANGES. GitHub mergeable is clean. CI is not yet green on the latest workflow: gh pr checks still reports v3 = pending (exit 8) on run 25845085698 after repeated polls (ci/fmt already pass). dashboard-ops reflects that as checks_state: "pending" / merge_criteria.ready: false when synced. No gh pr merge until v3 completes successfully — merging with a pending required check would violate the stated gate and risks a red main.

— sent from neat-gull-563

@briansrls

Copy link
Copy Markdown
Contributor Author

Item 1 (codex / codex-default @ 06:28:07Z): Re-read against current 5e5816a02 (post–#3059 layout): the APPROVE matches the tree — gate-#87 parallelism harness in tests/dag/, single-authority row in src/v3/compiler/src/r3_gate_87_cementing_regen_runner_suites.rs, runner seam in test_runner.rs, paired Rust receipt, and no restored cementing_dispatch.rs.in (that template is gone on main; this branch now matches). No diff-grounded defect in the cited rubric → no fix commit for this review artifact.

Merge readiness: dashboard-ops reviews shows 3 APPROVE providers on the current SHA prefix, no REQUEST_CHANGES, GitHub mergeable: MERGEABLE. Still not merging: gh pr checks is non-zero because v3 is still pending on workflow 25845866010 (only ci/fmt have finished). dashboard-ops therefore reports merge_criteria.ready: false until checks finish. I am not running gh pr merge while the required v3 job is in flight.

— sent from neat-gull-563

@briansrls briansrls left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review metadata

  • Provider / model: codex / unknown
  • Commit: 5e5816a0 · Trigger: schedule
  • Thinking: 119s wall

Non-blocking — Strengths

  • src/v3/compiler/tests/dag/t_r3_gate_87_cementing_regen_parallelism.dag The new .dag receipt is a narrow Int projection with a documented dissolution trigger toward full WorkflowParallelismReport literals, so it tracks the bridge instead of expanding untracked debt.
  • src/v3/compiler/src/test_runner.rs The added runner arm consumes the existing generated analyze_parallelism API and checks the terminal NoWorkflowProjection carrier rather than introducing a new parallel representation.

✅ No blocking concerns; the mixed Rust/.dag receipt extension fits the existing gate-87 cementing pattern and preserves the parallelism unsupported case through the modeled report carrier.

@briansrls

Copy link
Copy Markdown
Contributor Author

Item 1 (claude / claude-opus-4-7 @ 06:42:28Z): Cross-checked current 5e5816a02 against the artifact — APPROVE holds. The .dag header documents the narrow Int seam and the dissolution trigger (lines 1–5 of t_r3_gate_87_cementing_regen_parallelism.dag); test_runner implements gate87_parallelism_literal_no_workflow_projection via analyze_parallelism + NoWorkflowProjection; r3_gate_87_lens_cementing_regen_receipts_test pins the same classification on lit; r3_gate_87_cementing_regen_runner_suites.rs carries the harness row. No fix commit — the review lists no defects.

Merge readiness: dashboard-ops: 3 distinct APPROVE providers (claude, codex, cursor), 0 REQUEST_CHANGES, mergeable: MERGEABLE. Blocked on CI: gh pr checks still exit 8 with v3 = pending on run 25845866010 (ci/fmt pass). merge_criteria.ready is false while checks_state: "pending". No gh pr merge until v3 completes green and the dashboard flips ready.

— sent from neat-gull-563

@briansrls

Copy link
Copy Markdown
Contributor Author

Item 1 (codex @ 06:49:04Z on 5e5816a0, strengths + “no blocking concerns”): Re-verified on current b5ae8695 (branch tip): the .dag header still documents the narrow Int seam and the WorkflowParallelismReport widening dissolution (t_r3_gate_87_cementing_regen_parallelism.dag L1–L5); test_runner still routes gate87_parallelism_literal_no_workflow_projection through analyze_parallelism and matches ParallelismUnsupportedKind::NoWorkflowProjection only — no second representation. No fix commit — this is an APPROVE / non-blocking strengths note, not a change request.

Merge readiness: dashboard-ops — 3 APPROVE providers (claude, codex, cursor), 0 REQUEST_CHANGES, mergeable: MERGEABLE, but checks_state: "pending" / merge_criteria.ready: false because gh pr checks still returns exit 8 with v3 pending on run 25846292542. No gh pr merge until v3 finishes successfully and the dashboard shows ready.

— sent from neat-gull-563

@briansrls

Copy link
Copy Markdown
Contributor Author

Item 1 (claude-opus-4-7 APPROVE_WITH_COMMENTS @ 06:59:08Z): Addressed in commit 2fd6203b6. Extended t_r3_gate_87_cementing_regen_parallelism.dag header to name INVARIANTS §P5(b) and cite docs/r3-program-plan.md §1.8 row #87 (lens_cementing_test_discipline_complete, T-Tests-As-Data-Completeness) as the single merge-visible receipt bundle (harness + r3_gate_87_cementing_regen_runner_suites.rs + eval_gate_87_cementing_projection + r3_gate_87_lens_cementing_regen_receipts_test), and to separate row #81 (parallelism_lens_behaviorally_complete) for full behavioral completion vs this narrow Int seam. That closes the “P5 reconciliation pointer” soft concern without adding the title-only docs/briefs/r3-f-alpha-post-merge-parallelism-cementing-receipt-worker.md file (still absent on main; filing it can be a tiny follow-up if operators want the title path literal).

Merge readiness: cargo test -p v3-compiler r3_gate_87 was run locally on the change (pass). Remote v3 is still pending on the post-push workflow (25846831418; gh pr checks exit 8). dashboard-ops was still lagging an older SHA in this poll; no gh pr merge yet — will squash-merge once v3 + dashboard merge_criteria.ready agree.

— sent from neat-gull-563

@briansrls

Copy link
Copy Markdown
Contributor Author

Item 1 (codex REQUEST_CHANGES — P5 / Pure Bootstrap hand-Rust gate): Resolved without a new code commit — the required single INVARIANTS §P5(b) checkable receipt is now in the PR description (not only comments): it cites ** §1.8 row #87** (lens_cementing_test_discipline_complete), names the binary closure (cargo test -p v3-compiler r3_gate_87 / r3_gate_87_regen_lens_registry_names_match_fixture_inventory + r3_gate_87_cementing_regen_lens_suites_pass_through_runner), and records the deleted scaffold path tools/pb0_cycle4_emit_templates/cementing_dispatch.rs.in (post–#3059). Summary + test plan TODOs are replaced with concrete text.

— sent from neat-gull-563

@briansrls

Copy link
Copy Markdown
Contributor Author

Item 1 (codex REQUEST_CHANGES — P5 / Pure Bootstrap hand-Rust gate): Addressed by updating the PR description (not code): it now states the single INVARIANTS §P5(b) receipt Mechanism (b) requires — (1) concrete planning row docs/r3-program-plan.md §1.8 #87 lens_cementing_test_discipline_complete, (2) binary closure via cargo test -p v3-compiler r3_gate_87 / the two named gate-#87 tests, (3) deleted scaffold path tools/pb0_cycle4_emit_templates/cementing_dispatch.rs.in post–#3059. Summary and test plan sections replace the prior TODOs.

— sent from neat-gull-563

@briansrls
briansrls merged commit 65dc263 into main May 14, 2026
4 checks passed
@briansrls
briansrls deleted the session/neat-gull-563 branch May 14, 2026 07:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant